#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "AHT20-21_DEMO_V1_3.h"

int main(void)
{
	volatile float  c1=0,t1=0;
	uint32_t CT_data[2];
	Init_I2C_Sensor_Port();//初始化SDA，SCL的IO口
	Delay_1ms(500);
	OLED_Init();
	if((AHT20_Read_Status()&0x18)!=0x18)
	{
	AHT20_Start_Init(); //重新初始化寄存器
	Delay_1ms(10);
	}

	//下面显示汉字	
	OLED_ShowCN(1,1,0); //周
	OLED_ShowCN(1,2,1); //帅
	OLED_ShowCN(1,3,2); //康
	OLED_ShowString(2,1,"632007060321"); //学号
	OLED_ShowCN(3,1,3);//温
	OLED_ShowCN(3,2,5);//度
	OLED_ShowCN(4,1,4);//湿
	OLED_ShowCN(4,2,5);//度
	while(1)
	{
		
			//屏幕滚动
			OLED_WriteCommand(0x2E); //关闭滚动
			OLED_WriteCommand(0x26); //水平向左或者右滚动 26/27
			OLED_WriteCommand(0x00); //虚拟字节
			OLED_WriteCommand(0x00); //起始页 0
			OLED_WriteCommand(0x07); //滚动时间间隔，数字越大转动越慢
			OLED_WriteCommand(0x03); //终止页 3
			OLED_WriteCommand(0x00); //虚拟字节
			OLED_WriteCommand(0xFF); //虚拟字节
			OLED_WriteCommand(0x2F); //开启滚动
	
	 //AHT20_Read_CTdata(CT_data);       //不经过CRC校验，直接读取AHT20的温度和湿度数据    推荐每隔大于1S读一次
	 AHT20_Read_CTdata_crc(CT_data);  //crc校验后，读取AHT20的温度和湿度数据 
		
	 while(CT_data[0]==0x00&&CT_data[1]==0x00) //如果CRC校验不通过
	 {
	 	AHT20_Read_CTdata_crc(CT_data);
	 }
	 c1 = CT_data[0]*100*10/1024/1024;  //计算得到湿度值c1（放大了10倍）
	 t1 = CT_data[1]*200*10/1024/1024-500;//计算得到温度值t1（放大了10倍）
	////下一步客户处理显示数据，
		
			Delay_1ms(1000);
			OLED_Showfloat(3,7,t1/10.00,2,1);
			
			OLED_Showfloat(4,7,c1/10.00,2,1);
	}
	
	
}
